package com.hmall.common.client;

import com.hmall.common.dto.Item;
import com.hmall.common.dto.PageDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Author www
 * @Description Feign远程调用itemservice
 * @Date 2023/4/8 17:16
 * @Version 1.0
 */
@FeignClient(value = "itemservice",path = "/item")
public interface ItemClient {
    /**
     * 根据id查询商品
     * @param id 商品id
     * @return 返回数据
     */
    @GetMapping("/{id}")
    Item queryItemById(@PathVariable("id") Long id);

    /**
     * 商品分页查询
     * @param page 当前页面
     * @param size 每页大小
     * @return 返回数据
     */
    @GetMapping("/list")
    PageDTO<Item> queryItemByPage(@RequestParam("page") Integer page, @RequestParam("size") Integer size);

    /**
     * 扣减库存
     * @param itemId 商品id
     * @param num 库存
     */
    @PutMapping("/stock/{itemId}/{num}")
    void updateStock(@PathVariable("itemId") Long itemId, @PathVariable("num") Integer num);
}
